package socket;

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 使用当前类维护数据库的连接
 */
public class DBUtil {
    //阿里提供的连接池
    private static DruidDataSource ds;
    static{
        ds = new DruidDataSource();//实例化连接池
        ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/chatDB?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true");
        ds.setUsername("root");
        ds.setPassword("root");
        ds.setInitialSize(5);//初始连接数（连接池创建后默认创建多少个链接备用）
        ds.setMaxActive(20);//最大的连接数（连接池容量，最多的连接数）
    }
    public static Connection getConnectiom() throws SQLException {
        return ds.getConnection();

    }

//    //静态块---执行后只加载一次;没办法自己抛出异常
//    static{
//        try {
//            Class.forName("com.mysql.cj.jdbc.Driver");
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//            System.out.println("驱动加载失败！");
//        }
//    }
//    //定义一个静态方法--此处需要抛异常（重用的部分需要抛异常）
//    //一个类的静态方法只能引用静态属性
//    public static Connection getConnectiom() throws SQLException {
//        return DriverManager.getConnection(
//                //格式：jdbc:mysql://主机地址信息/数据库名？一堆参数
//                "jdbc:mysql://localhost:3306/chatDB?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",//数据库的地址（格式大致相同，不同的也不太相同）
//                "root",//登录数据库的用户名
//                "root"//数据库的密码
//        );
//    }
}
